草庐IT

java try finally 阻止关闭流

全部标签

java - RMI 线程阻止 JVM 在 main() 完成后退出

长话短说,在我的应用程序不再需要RMI后,我无法关闭几个JavaRMI的非守护线程。这可以防止JVM在main()完成时退出。我知道导出UnicastRemoteObject会导致RMI保持线程打开,直到您成功调用UnicastRemoteObject.unexportObject(Objecto,booleanforce)。下面是一个示例(无需修改即可运行,JVM将正常退出-删除对unexportObject的调用,JVM将永远不会退出):importjava.rmi.registry.LocateRegistry;importjava.rmi.registry.Registry;i

java - 如何触发内部关闭请求?

在JavaFX中关闭窗口时遇到问题。我根据需要定义我的setOnCloseRequest,当我点击窗口中的x时它会起作用。但是,我还需要一个按钮来关闭窗口并且此onCloseRequest必须起作用,但问题是它不起作用。该事件根本不会触发。我正在使用JavaFX2.2(Java7),我注意到setOnCloseRequest的引用说明在外部请求上关闭窗口 最佳答案 解决方案从您的内部关闭请求(在按下按钮时)触发一个事件,以便应用程序认为它收到了外部关闭请求。然后,无论请求来自外部事件还是内部事件,您的关闭请求逻辑都可以相同。priv

java - 如何阻止 Spring MVC 阻塞所有其他 Servlet?

我正在使用Spring2.5MVC并想添加另一个第三方Servlet。问题是,SpringMVC捕获了所有请求,因此Servlet没有收到任何请求。这是一个web.xml片段:SpringMVCorg.springframework.web.servlet.DispatcherServlet2个SpringMVC/*Thisistheservletneededforcache.typeservlet,returnsthepackedresourcesPackServletPackServletnet.sf.packtag.servlet.PackServletPackServlet*.

java - 解码套接字的 InputStream 会关闭套接字?

我有一个服务器-客户端架构,其中客户端将XML发送到服务器,服务器读取它并从中生成PDF,然后将其发送回客户端。在客户端:JAXBElementxml=...Socketsock=...Marshallermarshaller=...marshaller.marshal(xml,sock.getOutputStream());sock.shutdownOuput();同时在服务器端:ServerSocketserver=...Socketclient=server.accept();Unmarshallerunmarshaller=...//client.isClosed()->fal

java - Eclipse 工作区因不正确关闭而损坏

我在windows7-64位操作系统上使用Eclipsejuno。由于突然的电源问题,我的系统关闭了,当我下次启动Eclipse时,Eclipse无法加载工作区。它在启动时卡住,或者工作区不显示。似乎每次Eclipse未正确关闭时工作区都会损坏。修复启动的一种方法是rm-rf~/workspace/.metadata这样做之后,当然,设置消失了,项目必须重新导入等等。-这真的很痛苦:(而且我不明白为什么必须这样。其他应用程序似乎能够保持他们的数据完好无损,即使他们被杀。您能建议解决此问题的方法吗?是否有恢复损坏工作区(包括设置)的方法?提前致谢 最佳答案

java - @Transactional (noRollbackFor=RuntimeException.class) 不会阻止在 RuntimeException 上回滚

@Transactional(noRollbackFor=RuntimeException.class)publicvoidmethodA(Entitye){service.methodB(e);}---以下服务方式---@Transactional(propagation=Propagation.REQUIRES_NEW,noRollbackFor=RuntimeException.class)publicvoidmethodB(Entitye){dao.insert(e);}当methodB()中的dao.insert(e)导致主键冲突并抛出ConstraintViolationE

java - 如何在读取属性文件时关闭 fileInputStream

我有以下代码://Readpropertiesfile.Propertiesproperties=newProperties();try{properties.load(newFileInputStream("filename.properties"));}catch(FileNotFoundExceptione){system.out.println("FileNotFound");}catch(IOExceptione){system.out.println("IOEXCeption");}是否需要关闭FileInputStream?如果是,我该怎么做?我的代码list中出现错误做

java - 在 Spring 2.5 中注册关闭钩子(Hook)

我有一个spring应用程序,它在关闭时不调用beandestroy方法。我已经看到对这个的引用是由于beanRefFactory中的实例化,这可以通过在应用程序上下文中手动调用registerShutdownHook()来规避。这个方法似乎已经从2.0-2.5版本之间的spring中消失了。有人能指出我现在是如何完成的吗?谢谢。 最佳答案 此方法在ConfigurableApplicationContext中仍然可用并由AbstractApplicationContext实现.所以你可以这样做ApplicationContextc

java - 我应该始终关闭 BufferedReader 吗?

这是将文件读入List的行:Listlines=newBufferedReader(newInputStreamReader(classLoader.getResourceAsStream(fileName))).lines().collect(Collectors.toList());这是正确的还是我应该将BufferedReader分配给一个变量以便稍后能够关闭它? 最佳答案 您应该始终关闭您的资源。对于只快速使用几个文件的小程序来说,关闭可能不是什么大问题,因为大多数成熟的操作系统会在进程完成时为您关闭文件。但是,一次可以打开

java - 如何在 Spring 中正确关闭 ApplicationContext?

我正在学习SpringCore认证,我对在提供的学习Material中找到的这个问题有一些疑问:Whatisthepreferredwaytocloseanapplicationcontext?我知道如果我有这样的东西:ConfigurableApplicationContextcontext=…//Destroytheapplicationcontext.close();通过在context对象上使用close()方法,ApplicationContext被关闭并且应用程序被销毁。但我认为这不是我必须做的最好方法。阅读官方文档我发现我也可以这样做:context.registerSh